/**************************************************************************************************
**                                                                                               **
**  文件名称:  dal_output_reg.h                                                                  **
**  版权所有:  CopyRight @ Xiamen Yaxon NetWork CO.LTD. 2017                                     **
**  文件描述:  I/O输出口注册信息表管理                                                           **
**  ===========================================================================================  **
**  创建信息:  | 2017-7-27 | LEON | 创建本模块                                                   **
**  ===========================================================================================  **
**  修改信息:  单击此处添加....                                                                  **
**************************************************************************************************/
#ifndef DAL_OUTPUT_REG_H
#define DAL_OUTPUT_REG_H

/*************************************************************************************************/
/*                           定义所有IO统一编号                                                  */
/*************************************************************************************************/
#ifdef OUTPUT_DEF
#undef OUTPUT_DEF
#endif

#define OUTPUT_DEF(_PORT_ID_, _GBASE_, _PIN_, _MODE_, _DIRCT_, _LEVEL_)        _PORT_ID_,

typedef enum {
    #include "dal_output_reg.def"
    OUTPUT_PORT_MAX
} OUTPUT_PORT_E;

/*************************************************************************************************/
/*                           模块数据结构                                                        */
/*************************************************************************************************/
typedef struct {
    OUTPUT_PORT_E       port;                                                  /* IO口编号 */
    INT32U              gbase;                                                 /* GPIO寄存器基准地址 */
    INT16U              pin;                                                   /* 对应GPIO管脚 */
    GPIOOType_TypeDef   mode;                                                  /* 控制模式：开漏、推挽 */
    GPIOPuPd_TypeDef    dirct;                                                 /* 上下拉方向：上下、下拉、无 */
    INT8U               level;                                                 /* 初始化电平值 */
} OUTPUT_IO_T;

OUTPUT_IO_T const *DAL_OUTPUT_GetRegInfo(OUTPUT_PORT_E port);
INT8U DAL_OUTPUT_GetMaxNum(void);

#endif


